home *** CD-ROM | disk | FTP | other *** search
AMOS Source Code | 1997-05-14 | 4.5 KB | 175 lines |
- ' *************************************
- ' * *
- ' * Starfield Exampleprogram V1.0 *
- ' * Written by Chris Hodges *
- ' * *
- ' *************************************
- '
- NUMST=800
- Gosub SIMPLESTARS
- Gosub ZROTSTARS
- Gosub MORPHSTARS
- Gosub ZROTMORPHSTARS
- End
- SIMPLESTARS:
- Screen Open 0,320,256,4,0
- Curs Off : Flash Off : Paper 0 : Pen 1 : Cls
- Palette 0,0,0,0
- Screen Display 0,128,40,320,256
- Double Buffer : Autoback 0
- Extension_15_0006 0
- Extension_15_0020 9,NUMST
- WX=Rnd(1023) : WY=Rnd(1023) : WZ=512
- QUIT=0 : PV=64
- Fade 2,0,$555,$999,$FFF
- IPOL=0
- Repeat
- Extension_15_0054 0,9,OX,OY,OZ
- Add IPOL,1,-1024 To 1024
- Add WX,Rnd(8)
- Add WY,Rnd(8)
- Add WZ,Rnd(2)
- OX=X : OY=Y : OZ=Z
- Add X, Extension_8_1106(WX,64) : Add Y, Extension_8_1106(WY,64)
- Add Z, Extension_8_1106(WZ,16)
- Extension_15_0038 0,9,X,Y,Z
- Screen Swap
- Wait Vbl
- If Mouse Key Then QUIT=1 : Fade 4
- If QUIT Then Dec PV
- Until PV=0
- Erase 9
- Screen Close 0
- Return
- ZROTSTARS:
- Screen Open 0,320,256,4,0
- Curs Off : Flash Off : Paper 0 : Pen 1 : Cls
- Palette 0,0,0,0
- Screen Display 0,128,40,320,256
- Double Buffer : Autoback 0
- Extension_15_0006 0
- Extension_15_0020 9,NUMST
- WX=Rnd(1023) : WY=Rnd(1023) : WZ=512
- WZZ=Rnd(1023)
- QUIT=0 : PV=64
- Fade 2,0,$555,$999,$FFF
- IPOL=0
- Repeat
- Extension_15_0126 0,9,OX,OY,OZ,OZZ
- Add IPOL,1,-1024 To 1024
- Add WX,Rnd(8)
- Add WY,Rnd(8)
- Add WZ,Rnd(2)
- Add WZZ,1
- OX=X : OY=Y : OZ=Z : OZZ=ZZ
- Add X, Extension_8_1106(WX,64) : Add Y, Extension_8_1106(WY,64)
- Add Z, Extension_8_1106(WZ,16)
- Add ZZ, Extension_8_1106(WZZ,3)
- Extension_15_0108 0,9,X,Y,Z,ZZ
- Screen Swap
- Wait Vbl
- If Mouse Key Then QUIT=1 : Fade 4
- If QUIT Then Dec PV
- Until PV=0
- Erase 9
- Screen Close 0
- Return
- MORPHSTARS:
- Gosub PREPAREIMAGE
- Screen Open 0,320,256,4,0
- Curs Off : Flash Off : Paper 0 : Pen 1 : Cls
- Palette 0,0,0,0
- Screen Display 0,128,40,320,256
- Double Buffer : Autoback 0
- Extension_15_0006 0
- Extension_15_0020 9,NUMST
- ' AMCAF Commands: Bank Copy 9 To 11
- Extension_8_025A 9 To 11
- ' AMCAF Commands: Bank Copy 9 To 12
- Extension_8_025A 9 To 12
- ' Copy Start(10),Start(10)+1200 To Start(9)
- WX=Rnd(1023) : WY=Rnd(1023) : WZ=512
- BP=1
- QUIT=0 : PV=64
- Fade 2,0,$555,$999,$FFF
- IPOL=0
- Repeat
- Extension_15_0054 0,12,OX,OY,OZ
- Add IPOL,1,-1024 To 1024
- Copy Start(9),Start(9)+NUMST*6 To Start(12)
- Extension_15_00C8 9,11 To 10,Min(Max(Abs(IPOL)-512,0),256)
- Add WX,Rnd(8)
- Add WY,Rnd(8)
- Add WZ,Rnd(2)
- OX=X : OY=Y : OZ=Z
- Add X, Extension_8_1106(WX,64) : Add Y, Extension_8_1106(WY,64)
- Add Z, Extension_8_1106(WZ,16)
- Extension_15_0038 0,9,X,Y,Z
- Screen Swap
- Wait Vbl
- If Mouse Key Then QUIT=1 : Fade 4
- If QUIT Then Dec PV
- Until PV=0
- Erase 3 : Erase 9 : Erase 10 : Erase 11 : Erase 12
- Screen Close 0
- Return
- ZROTMORPHSTARS:
- Gosub PREPAREIMAGE
- Screen Open 0,320,256,4,0
- Curs Off : Flash Off : Paper 0 : Pen 1 : Cls
- Palette 0,0,0,0
- Screen Display 0,128,40,320,256
- Double Buffer : Autoback 0
- Extension_15_0006 0
- Extension_15_0020 9,NUMST
- Extension_8_025A 9 To 11
- Extension_8_025A 9 To 12
- ' Copy Start(10),Start(10)+1200 To Start(9)
- WX=Rnd(1023) : WY=Rnd(1023) : WZ=512
- WZZ=Rnd(1023)
- BP=1
- QUIT=0 : PV=64
- Fade 2,0,$555,$999,$FFF
- IPOL=0
- Repeat
- Extension_15_0126 0,12,OX,OY,OZ,OZZ
- Add IPOL,1,-1024 To 1024
- Copy Start(9),Start(9)+NUMST*6 To Start(12)
- Extension_15_00C8 9,11 To 10,Min(Max(Abs(IPOL)-512,0),256)
- Add WX,Rnd(8)
- Add WY,Rnd(8)
- Add WZ,Rnd(2)
- Add WZZ,1
- OX=X : OY=Y : OZ=Z : OZZ=ZZ
- Add X, Extension_8_1106(WX,64) : Add Y, Extension_8_1106(WY,64)
- Add Z, Extension_8_1106(WZ,16)
- Add ZZ, Extension_8_1106(WZZ,3)
- Extension_15_0108 0,9,X,Y,Z,ZZ
- Screen Swap
- Wait Vbl
- If Mouse Key Then QUIT=1 : Fade 4
- If QUIT Then Dec PV
- Until PV=0
- Erase 3 : Erase 9 : Erase 10 : Erase 11 : Erase 12
- Screen Close 0
- Return
- PREPAREIMAGE:
- Screen Open 0,320,32,2,0 : Screen Hide
- Curs Off : Flash Off : Paper 0 : Pen 1 : Cls
- Print "CHRIS!"
- Reserve As Work 10,NUMST*6
- ST=0
- For T=0 To 99
- For Y=0 To 7
- For X=0 To 47
- If Extension_8_039E(X,Y)
- Doke Start(10)+ST*6,X*64+Rnd(63)+3072
- Doke Start(10)+ST*6+2,Y*64+Rnd(63)+4096
- Doke Start(10)+ST*6+4,(X+Y)*(2*Sgn(((X+Y) and 1)*2-1))+(((X+Y) and 1)*512)+Rnd(7)
- Inc ST
- Exit If ST=NUMST,3
- End If
- Next
- Next
- Next
- Return